home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib17.dsk / EXPANDER DEMO.bas < prev    next >
BASIC Source File  |  2023-02-26  |  7KB  |  153 lines

  1. 10  REM  **********************
  2. 20  REM  * LANGUAGE  EXPANDER *
  3. 30  REM  * BY JAN COSTENBADER *
  4. 40  REM  * COPYRIGHT (C) 1984 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * LINCOLN, MA. 01773 *
  7. 70  REM  **********************
  8. 80  PRINT  CHR$(4);"BLOADEXPANDER.OBJ0": CALL 768: DIM T(50)
  9. 90  HOME : PRINT "** COPYRIGHT 1984 BY MICROSPARC, INC. **": PRINT "THIS IS A DEMONSTRATION OF SOME OF THE"
  10. 100  PRINT "FEATURES AVAILABLE ON THE RAM CARD"
  11. 110  PRINT "LANGUAGE EXPANDER."
  12. 120  &  WAIT 4
  13. 130  PRINT : PRINT : PRINT "FIRST WE USE &BELL TO RING THE BELL."
  14. 140  &  WAIT 3
  15. 150  FOR I = 1 TO 10: & BELL: NEXT 
  16. 160  VTAB 10: PRINT : PRINT : PRINT "NOW USE &CLRLN TO CLEAR TO THE EOL AND  DELETE AN EXPLETIVE   %#&*!!@#$%!@!!"
  17. 170  &  WAIT 4
  18. 180  VTAB 13: HTAB 22: & CLRLN: &  WAIT 3
  19. 190  VTAB 14
  20. 200  PRINT : PRINT "NOW TO LINE 4 AND CLEAR PAGE (&CLRPG)."
  21. 210  &  WAIT 3
  22. 220  VTAB 4: & CLRPG
  23. 230  &  WAIT 3: HOME 
  24. 240  PRINT "&< WILL SHRINK THE TEXT WINDOW TO 33"
  25. 250  PRINT "CHARACTERS WIDE TO ALLOW EASY EDITING."
  26. 260  &  WAIT 4
  27. 270  &  <: LIST 10,100
  28. 280  &  WAIT 4: &  >: PRINT : PRINT 
  29. 290  PRINT "&> RESTORES WINDOW TO NORMAL.": PRINT 
  30. 300  &  WAIT 3: LIST 10,100
  31. 310  &  WAIT 3: HOME 
  32. 320  PRINT "YOU CAN INPUT ANYTHING WITH &INPUT."
  33. 330  PRINT : PRINT "COMMAS, COLONS, OR ANY OTHER 'ILLEGAL'  CHARACTERS ARE OKAY."
  34. 340  &  WAIT 2: PRINT 
  35. 350  PRINT : &  INPUT "TRY IT! INPUT ANYTHING:";X$: PRINT : PRINT "SEE, NO 'EXTRA IGNORED'!!!"
  36. 360  &  WAIT 2: PRINT : PRINT "HERE IS WHAT YOU KEYED IN: "
  37. 370  PRINT : PRINT X$
  38. 380  &  WAIT 3: HOME 
  39. 390  HOME : PRINT "WE CAN ALSO PRINT A STRING MANY TIMES."
  40. 400  PRINT : PRINT "INPUT A SHORT STRING...";: &  INPUT X$
  41. 410  PRINT : PRINT "HOW MANY TIMES TO PRINT IT..";: INPUT A
  42. 420  PRINT : & R PRINT X$,A
  43. 430  PRINT : PRINT "THIS WAS DONE WITH &RPRINT."
  44. 440  &  WAIT 5
  45. 450  &  WAIT 5
  46. 460  HOME : PRINT "DO YOU HAVE A PRINTER  ";: INPUT A$
  47. 470  IF  LEFT$(A$,1) < >"Y"  THEN 570
  48. 480  PRINT : PRINT "DO YOU HAVE A PARALLEL CARD IN SLOT 1 ";: INPUT A$
  49. 490  IF  LEFT$(A$,1) < >"Y"  THEN 570
  50. 500  PRINT : PRINT "GOOD...TURN THE PRINTER ON PLEASE."
  51. 510  &  WAIT 5: PRINT : PRINT "&P WILL TURN THE PRINTER ON."
  52. 520  &  WAIT 2: & P
  53. 530  PRINT : PRINT "&PF WILL TURN IT OFF."
  54. 540  &  WAIT 2: & PF
  55. 550  PRINT : PRINT "&P80 AND &P132 WILL TURN THE PRINTER ON WITH 80 OR 132 COLUMNS"
  56. 560  &  WAIT 5
  57. 570  HGR : HOME : VTAB 23
  58. 580  PRINT "&BKGND= WILL FILL THE HI-RES SCREEN WITH";
  59. 590  PRINT "THE HCOLOR SPECIFIED."
  60. 600  FOR I = 0 TO 7: & BKGND = I: VTAB 23: HTAB 24: & CLRLN: PRINT "&BKGND = ";I: &  WAIT 1: NEXT 
  61. 610  PRINT : PRINT "NUMBERS GREATER THAN SEVEN GIVE"
  62. 620  PRINT "INTERESTING RESULTS."
  63. 630  &  WAIT 2: FOR I = 100 TO 105: & BKGND = I: VTAB 23: HTAB 24: & CLRLN: PRINT "&BKGND = ";I: &  WAIT 2: NEXT 
  64. 640  PRINT : PRINT : PRINT "WE CAN ALSO WRITE CHARACTERS ON"
  65. 650  PRINT "THE HI-RES SCREEN AT ANY LOCATION."
  66. 660  &  WAIT 5: PRINT : PRINT "THE UPPER LEFT HAND CORNER OF THE STRING";
  67. 670  PRINT "WILL BE AT THE X,Y COORDINATES SELECTED.";: &  WAIT 5
  68. 680  HOME : VTAB 22: PRINT "WHAT X COORDINATE DO YOU WANT:";: INPUT X
  69. 690  PRINT "NOW THE Y COORDINATE:";: INPUT Y
  70. 700  PRINT "NOW WHAT DO YOU TO SAY..";: &  INPUT A$
  71. 710  & BKGND = 0: & H PRINT X,Y,A$
  72. 720  &  WAIT 4: & BKGND = 0
  73. 730 A$ = "INCREMENTING X BY 1 AND DOUBLE PRINTING"
  74. 740 B$ = "BRINGS INTERESTING RESULTS."
  75. 750  & H PRINT 0,50,A$: & H PRINT 0,60,B$
  76. 760  &  WAIT 4: & H PRINT 1,50,A$: & H PRINT 1,60,B$
  77. 770  &  WAIT 5: & BKGND = 0: PRINT : PRINT : PRINT 
  78. 780  PRINT "WE MAY ALSO PRINT VERTICALLY.": &  WAIT 3
  79. 790  & BKGND = 0: PRINT "HERE IS THE VALUE OF SIN(3)"
  80. 800  & V PRINT 160,0, SIN(3): &  WAIT 5
  81. 810  TEXT 
  82. 820  HOME 
  83. 830  PRINT "COMPUTED GOTO'S AND GOSUB'S ARE OK"
  84. 840  PRINT : PRINT "&GOTO 10*X IS A LEGAL STATEMENT"
  85. 850 X = 87: &  GOTO 10 *X: &  WAIT 4
  86. 860  PRINT "OOP'S COMPUTED GOTO DOSEN'T WORK"
  87. 870  PRINT : PRINT "WE ARRIVED HERE VIA COMPUTED GOTO!": &  WAIT 5
  88. 880  HOME : PRINT : PRINT "&POKE IS CHANGED TO ALLOW HEX INPUT"
  89. 890  PRINT "THE FORMAT IS:"
  90. 900  PRINT : PRINT "    &POKE $300,$FF"
  91. 910  PRINT : PRINT "ANY COMBINATION OF DECIMAL AND HEX "
  92. 920  PRINT "IS ALLOWABLE....."
  93. 930  PRINT : PRINT "THE ONLY RESTRICTION IS THAT HEX MUST BE";
  94. 940  PRINT "PRECEDED BY A '$' (IT MAY BE STORED AS  A STRING."
  95. 950  PRINT : PRINT "FOR EXAMPLE, &POKE A$,255 IS LEGAL"
  96. 960  PRINT "WHERE A$= $0300"
  97. 970  PRINT : PRINT 
  98. 980  PRINT : &  INPUT "TYPE A TWO DIGIT HEX NUMBER:";A$
  99. 990  IF  LEFT$(A$,1) = "$"  THEN 1010
  100. 1000  PRINT : PRINT "REMEMBER TO PRECEDE THE NUMBER BY A $": GOTO 980
  101. 1010  PRINT : PRINT "THIS NUMBER IS NOW PUT IN MEMORY BY:"
  102. 1020  PRINT : PRINT "         POKE $0300,A$"
  103. 1030  &  POKE $0300,A$
  104. 1040  PRINT : PRINT "WHERE A$ IS THE NUMBER YOU TYPED."
  105. 1050  &  WAIT 5
  106. 1060  HOME : PRINT : PRINT "WE CAN RECOVER THE NUMBER WITH &PEEK."
  107. 1070  PRINT : PRINT "WITH &PEEK $300, X$ WE CAN READ"
  108. 1080  PRINT "MEMORY LOCATION $0300 AND STORE IT"
  109. 1090  PRINT "IN VARIABLE LOCATION X$."
  110. 1100  PRINT : PRINT "BY PRINTING X$, WE CAN SEE THE HEX VALUE";
  111. 1110  PRINT "OF LOCATION $0300."
  112. 1120  PRINT : PRINT "HIT THE SPACE BAR TO SEE.": GET S$
  113. 1130  PRINT : &  PEEK$0300,X$: PRINT "&PEEK $0300, X$=";X$
  114. 1140  &  WAIT 5: PRINT : PRINT "ANY COMBINATION OF HEX OR DEC WILL WORK"
  115. 1150  &  WAIT 4
  116. 1160  PRINT : PRINT "& CALL WORKS THE SAME AS PEEK AND POKE.": PRINT "WE MAY CALL A ROUTINE USING HEX         NOTATION."
  117. 1170  PRINT : PRINT "FOR EXAMPLE, THE BELL ROUTINE AT $FBDD "
  118. 1180  PRINT "MAY BE CALLED WITH &CALL $FBDD.": &  WAIT 6
  119. 1190  PRINT : PRINT "LIKE THIS ": &  CALL $FBDD
  120. 1200  &  WAIT 3: HOME : PRINT " THERE IS ALSO A MOD FUNCTION."
  121. 1210  PRINT : PRINT "THE FORMAT IS & MOD X,Y,A ": PRINT 
  122. 1220  PRINT "THIS IS THE SAME AS THE INTEGER BASIC ": PRINT "STATEMENT....": PRINT 
  123. 1230  HTAB 10: PRINT "A = X MOD Y"
  124. 1240  PRINT : INPUT "TRY IT NOW...INPUT AN INTEGER:";X
  125. 1250  PRINT : INPUT "NOW INPUT ANOTHER INTEGER LESS THAN THE FIRST:";Y
  126. 1260  & MODX,Y,A
  127. 1270  PRINT : PRINT X;" MOD ";Y;" = ";A
  128. 1280  &  WAIT 4
  129. 1290  HOME : PRINT " THE & BEGIN AND & DO CAN SAVE SOME "
  130. 1300  PRINT "EXECUTION TIME ": &  WAIT 3
  131. 1310  PRINT : PRINT " WE WILL NOW EXECUTE A LOOP USING GOTO "
  132. 1320  PRINT : PRINT "WHEN YOU ARE READY HIT ANY KEY"
  133. 1330  GET S$:X = 1
  134. 1340 X = X +1:Y =  SIN(X): HOME : PRINT X
  135. 1350  IF X <300  THEN 1340
  136. 1360  & BELL: PRINT : PRINT "LOOP DONE"
  137. 1370  &  WAIT 4: PRINT : PRINT "NOW WE WILL EXECUTE THE SAME LOOP "
  138. 1380  PRINT "USING &BEGIN AND & DO"
  139. 1390  PRINT "HIT ANY KEY WHEN YOU ARE READY": GET S$
  140. 1400 X = 1: & BEGINA%
  141. 1410 X = X +1:Y =  SIN(X): HOME : PRINT X
  142. 1420  IF X <300  THEN  & DOA%
  143. 1430  & BELL: PRINT : PRINT "LOOP DONE"
  144. 1440  PRINT : PRINT "THERE... THAT SHOULD HAVE BEEN FASTER"
  145. 1450  PRINT "BY ALMOST 2 SECONDS!!"
  146. 1460  &  WAIT 5
  147. 1470  HOME : PRINT "WELL, THAT'S ABOUT IT..."
  148. 1480  &  WAIT 3
  149. 1490  PRINT : PRINT "EXCEPT FOR WAIT......"
  150. 1500  PRINT : PRINT "ALL OF THE DELAYS WERE GENERATED BY"
  151. 1510  PRINT : PRINT "& WAIT T  WHERE T IS NUMBER OF SECONDS."
  152. 1520  &  WAIT 4:
  153. 1530  & BELL: PRINT : PRINT "THANKS FOR WATCHING!!"